home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Wonky Flux Batch 2019 02
/
Wonky_Flux_Batch_2019-02.zip
/
Wonky Flux Batch 2019-02
/
057 - Algebra Workshop.dsk
/
RELATION.PLOTTE.bas
< prev
next >
Wrap
BASIC Source File
|
2019-02-17
|
9KB
|
255 lines
1 REM RELATION PLOTTER
2 REM BY WILLIAM J. MASALSKI
3 REM SCHOOL OF EDUCATION
5 REM AMHERST 01003<CTRL-J>
10 HOME : LOMEM: 24576
20 GOSUB 200: REM ---DRAW FRAME---
30 GOSUB 300: REM ---DRAW X-AXIS---
40 GOSUB 400: REM ---DRAW Y-AXIS---
50 GOSUB 500: REM ---WRITE AND PLOT EQUATION---
60 GOTO 50
70 END :<CTRL-J>
200 REM ---DRAW FRAME---
210 HGR : HCOLOR= 3
220 HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0
230 RETURN :<CTRL-J>
300 REM ---DRAW X-AXIS---
310 REM ORIGIN = 139,79
320 HPLOT 0,79 TO 279,79
330 FOR X = 0 TO 279 STEP 13.9
340 HPLOT X,78: HPLOT X,80
350 NEXT X
360 RETURN :<CTRL-J>
400 REM ---DRAW Y-AXIS---
410 LET K = .80: REM PIXEL RATIO
420 HPLOT 139,0 TO 139,159
430 FOR Y = 79 TO 159 STEP 13.9 *K
440 HPLOT 138,Y: HPLOT 140,Y
450 NEXT Y
460 FOR Y = 79 TO 0 STEP -13.9 *K
470 HPLOT 138,Y: HPLOT 140,Y
480 NEXT Y
490 RETURN :<CTRL-J>
500 REM ---WRITE AND PLOT EQUATION---
510 VTAB 21: INPUT "1-LIN 2-QUAD 3-CIRCLE 4-CLEAR 5-QUIT:";N
520 HOME
530 IF N <1 OR N >6 THEN GOTO 510
540 ON N GOSUB 1000,2000,3000,4000,5000
550 RETURN :<CTRL-J>
1000 REM ---LINEAR---
1002 VTAB 21: INPUT "LINEAR: 1,2,OR 3 :";N
1004 IF N <1 OR N >3 THEN GOTO 1008
1006 ON N GOSUB 1100,1200,1300
1008 RETURN :<CTRL-J>
1100 REM ---LINEAR EQUATION OF FORM Y = A*X + B---
1102 VTAB 22: PRINT " Y = A*X + B"
1104 INPUT "TYPE IN YOUR VALUE FOR A: ";A
1106 HOME
1108 VTAB 22: PRINT " Y = ";A;"*X + B"
1110 INPUT "TYPE IN YOUR VALUE FOR B: ";B
1112 HOME
1114 VTAB 22: PRINT " Y = ";A;"*X + ";B
1116 FOR X = -10 TO 10 STEP .2
1118 LET Y = A *X +B
1120 LET H = 13.9 *X +139
1122 LET V = 79 -(13.9 *K *Y)
1124 IF V > = 0 AND V < = 159 THEN HPLOT H,V
1126 NEXT X
1128 RETURN :<CTRL-J>
1200 REM ---LINEAR INEQUALITY OF FORM Y < A*X + B---
1202 VTAB 22: PRINT " Y < A*X + B"
1204 INPUT "TYPE IN YOUR VALUE FOR A: ";A
1206 HOME
1208 VTAB 22: PRINT " Y < ";A;"*X + B"
1210 INPUT "TYPE IN YOUR VALUE FOR B: ";B
1212 HOME
1214 VTAB 22: PRINT " Y < ";A;"*X + ";B
1216 LET C = 1: REM COUNTER USED TO DETERMINE WHEN TO SHADE
1218 FOR X = -10 TO 10 STEP .2
1220 LET Y = A *X +B
1222 LET H = 13.9 *X +139
1224 LET V = 79 -(13.9 *K *Y)
1226 IF V > = 0 AND V < = 159 THEN HPLOT H,V
1228 LET C = C * -1: REM SHADES WHEN C = -1
1230 IF C = 1 THEN GOTO 1236
1232 IF V > = 0 AND V < = 159 THEN HPLOT H,V TO H,159
1234 IF V <0 THEN HPLOT H,0 TO H,159
1236 NEXT X
1238 RETURN :<CTRL-J>
1300 REM ---LINEAR INEQUALITY OF FORM Y > A*X + B---
1302 VTAB 22: PRINT " Y > A*X + B"
1304 INPUT "TYPE IN YOUR VALUE FOR A: ";A
1306 HOME
1308 VTAB 22: PRINT " Y > ";A;"*X + B"
1310 INPUT "TYPE IN YOUR VALUE FOR B: ";B
1312 HOME
1314 VTAB 22: PRINT " Y > ";A;"*X + ";B
1316 LET C = 1: REM COUNTER USED TO DETERMINE WHEN TO SHADE
1318 FOR X = -10 TO 10 STEP .2
1320 LET Y = A *X +B
1322 LET H = 13.9 *X +139
1324 LET V = 79 -(13.9 *K *Y)
1326 IF V > = 0 AND V < = 159 THEN HPLOT H,V
1328 LET C = C * -1: REM SHADES WHEN C = -1
1330 IF C = 1 THEN GOTO 1336
1332 IF V > = 0 AND V < = 159 THEN HPLOT H,V TO H,0
1334 IF V >159 THEN HPLOT H,159 TO H,0
1336 NEXT X
1338 RETURN :<CTRL-J>
2000 REM ---QUADRATIC---
2002 VTAB 21: INPUT "QUADRATIC: 1,2,3,4,OR 5 :";N
2004 IF N <1 OR N >5 THEN GOTO 2008
2006 ON N GOSUB 2102,2200,2300,2400,2500
2008 RETURN :<CTRL-J>
2100 REM ---QUADRATIC EQUATION OF FORM Y = A*X^2 + B*X + C---
2102 VTAB 22: PRINT " Y = A*X^2 + B*X + C"
2104 INPUT "TYPE IN YOUR VALUE FOR A: ";A
2106 HOME
2108 VTAB 22: PRINT " Y = ";A;"*X^2 + B*X + C"
2110 INPUT "TYPE IN YOUR VALUE FOR B: ";B
2112 HOME
2114 VTAB 22: PRINT " Y = ";A;"*X^2 + ";B;"*X + C"
2116 INPUT "TYPE IN YOUR VALUE FOR C: ";C
2118 HOME
2120 VTAB 22: PRINT " Y = ";A;"*X^2 + ";B;"*X + ";C
2122 FOR X = -10 TO 10 STEP .2
2124 LET Y = A *X ^2 +B *X +C
2126 LET H = 13.9 *X +139
2128 LET V = 79 -(13.9 *K *Y)
2130 IF V <0 OR V >159 THEN GOTO 2134
2132 HPLOT H,V
2134 NEXT X
2136 RETURN :<CTRL-J>
2200 REM ---QUADRATIC EQUATION OF FORM Y = A*X^2 + B---
2202 VTAB 22: PRINT " Y = A*X^2 + B
2204 INPUT "TYPE IN YOUR VALUE FOR A: ";A
2206 HOME
2208 VTAB 22: PRINT " Y = ";A;"*X^2 + B"
2210 INPUT "TYPE IN YOUR VALUE FOR B: ";B
2212 HOME
2214 VTAB 22: PRINT " Y = ";A;"*X^2 + ";B
2216 FOR X = -10 TO 10 STEP .2
2218 LET Y = A *X ^2 +B
2220 LET H = 13.9 *X +139
2222 LET V = 79 -(13.9 *K *Y)
2224 IF V <0 OR V >159 THEN GOTO 2228
2226 HPLOT H,V
2228 NEXT X
2230 RETURN :<CTRL-J>
2300 REM ---QUADRATIC EQUATION OF FORM Y = A*(X - H)^2 + B---
2302 VTAB 22: PRINT " Y = A*(X - H)^2 + B
2304 INPUT "TYPE IN YOUR VALUE FOR A: ";A
2306 HOME
2308 VTAB 22: PRINT " Y = ";A;"*(X - H)^2 + B"
2310 INPUT "TYPE IN YOUR VALUE FOR H: ";H
2312 HOME
2314 VTAB 22: PRINT " Y = ";A;"*(X - ";H;")^2 + B"
2316 INPUT "TYPE IN YOUR VALUE FOR B: ";B
2318 HOME
2320 VTAB 22: PRINT " Y = ";A;"*(X - ";H;")^2 + ";B
2322 FOR X = -10 TO 10 STEP .2
2324 LET Y = A *((X -H) ^2) +B
2326 LET Z = 13.9 *X +139
2328 LET V = 79 -(13.9 *K *Y)
2330 IF V <0 OR V >159 THEN GOTO 2334
2332 HPLOT Z,V
2334 NEXT X
2336 RETURN :<CTRL-J>
2400 REM ---QUADRATIC INEQUALITY OF FORM Y < A*(X - H)^2 + B---
2402 VTAB 22: PRINT " Y < A*(X- H)^2 + B"
2404 INPUT "TYPE IN YOUR VALUE FOR A: ";A
2406 HOME
2408 VTAB 22: PRINT " Y < ";A;"*(X - H)^2 + B"
2410 INPUT "TYPE IN YOUR VALUE FOR H: ";H
2412 HOME
2414 VTAB 22: PRINT " Y < ";A;"*(X - ";H;")^2 + B"
2416 INPUT "TYPE IN YOUR VALUE FOR B ( -7 < B < 7 ):";B
2418 IF B < -7 OR B >7 THEN GOTO 2416
2420 HOME
2422 VTAB 22: PRINT " Y < ";A;"*(X - ";H;") ^ 2 + ";B
2424 LET C = 1: REM COUNTER USED TO DETERMINE WHEN TO SHADE
2426 FOR X = -10 TO 10 STEP .2
2428 LET Y = A *((X -H) ^2) +B
2430 LET Z = 13.9 *X +139
2432 IF V > = 0 AND V < = 159 THEN HPLOT Z,V
2434 LET V = 79 -(13.9 *K *Y)
2436 LET C = C * -1: REM SHADES WHEN C = -1
2438 IF C = 1 THEN GOTO 2444
2440 IF V > = 0 AND V < = 159 THEN HPLOT Z,V TO Z,159
2442 IF (V <0 OR V >159) AND A >0 THEN HPLOT Z,0 TO Z,159
2444 NEXT X
2446 RETURN :<CTRL-J>
2500 REM ---QUADRATIC INEQUALITY OF FORM Y > A*(X - H)^2 + B---
2502 VTAB 22: PRINT " Y > A*(X-H)^2 + B"
2504 INPUT "TYPE IN YOUR VALUE FOR A: ";A
2506 HOME
2508 VTAB 22: PRINT " Y > ";A;"*(X - H)^2 + B"
2510 INPUT "TYPE IN YOUR VALUE FOR H: ";H
2512 HOME
2514 VTAB 22: PRINT " Y > ";A;"*(X - ";H;")^2 + B"
2516 INPUT "TYPE IN YOUR VALUE FOR B ( -7 < B < 7 ):";B
2518 IF B < -7 OR B >7 THEN GOTO 2516
2520 HOME
2522 VTAB 22: PRINT " Y > ";A;"*(X - ";H;") ^ 2 + ";B
2524 LET C = 1: REM COUNTER USED TO DETERMINE WHEN TO SHADE
2526 FOR X = -10 TO 10 STEP .2
2528 LET Y = A *((X -H) ^2) +B
2530 LET Z = 13.9 *X +139
2532 LET V = 79 -(13.9 *K *Y)
2534 IF V > = 0 AND V < = 159 THEN HPLOT Z,V
2536 LET C = C * -1: REM SHADES WHEN C = -1
2538 IF C = 1 THEN GOTO 2544
2540 IF V > = 0 AND V < = 159 THEN HPLOT Z,V TO Z,0
2542 IF (V <0 OR V >159) AND A <0 THEN HPLOT Z,159 TO Z,0
2544 NEXT X
2546 RETURN :<CTRL-J>
3000 REM ---CIRCLES---
3002 VTAB 21: INPUT "CIRCLES: 1, 2, OR 3: ";N
3004 IF N <1 OR N >3 THEN GOTO 3008
3006 ON N GOSUB 3100,3200,3300
3008 RETURN :<CTRL-J>
3100 REM ---CIRCLE OF RADIUS R---
3102 VTAB 22: INPUT " GIVE A RADIUS BETWEEN 0 AND 10: ";R
3104 VTAB 23: PRINT "Y = SQR(";R;"^2 - X^2)"
3106 FOR X = -10 TO 10 STEP .2
3108 IF ABS(X) >R THEN GOTO 3120
3110 LET Y = SQR(R ^2 -X ^2)
3112 LET H = 13.9 *X +139
3114 LET V = 79 -(13.9 *K *Y)
3116 IF V <0 OR V >159 THEN GOTO 3120
3118 HPLOT H,V: HPLOT H,79 +(13.9 *K *Y)
3120 NEXT X
3122 RETURN :<CTRL-J>
3200 REM ---CIRCLE OF RADIUS R WITH CENTER AT (X2,Y2)---
3202 VTAB 22: INPUT "GIVE A RADIUS BETWEEN 0 AND 10: ";R
3204 VTAB 22: INPUT "GIVE THE LOCATION OF THE CENTER: ";X2,Y2
3206 VTAB 22: PRINT "CIRCLE WITH RADIUS ";R;" AND CENTER (";X2;",";Y2;")."
3208 VTAB 23: PRINT "Y = SQR(";R;"^2 - (X - ";X2;")^2) + ";Y2
3210 FOR X = -10 TO 10 STEP .2
3212 IF (X -X2) ^2 >R ^2 THEN GOTO 3230
3214 LET Y = SQR(R ^2 -(X -X2) ^2) +Y2
3216 LET H = 13.9 *X +139
3218 LET V = 79 -(13.9 *K *Y)
3220 IF V <0 OR V >159 THEN GOTO 3224
3222 HPLOT H,V
3224 LET V2 = 79 +(13.9 *K *Y) -(13.9 *K *Y2) *2
3226 IF V2 <0 OR V2 >159 THEN GOTO 3230
3228 HPLOT H,79 -(13.9 *K *Y2) *2 +(13.9 *K *Y)
3230 NEXT X
3232 RETURN :<CTRL-J>
3300 REM ---CIRCLE OF RADIUS R USING TRIG FUNCTIONS---
3302 VTAB 22: INPUT "GIVE A RADIUS BETWEEN 0 AND 10: ";R
3304 VTAB 23: PRINT "FOR C = 0 TO 2*3.14 STEP .2"
3306 VTAB 24: PRINT "X = ";R;"*(COS(C)) Y = ";R;"*(SIN(C))"
3308 FOR C = 0 TO 2 *3.14 STEP .2
3310 LET X = R *( COS(C)): LET Y = R *( SIN(C))
3312 LET H = 13.9 *X +139
3314 LET V = 79 -(13.9 *K *Y)
3316 IF V <0 OR V >159 THEN GOTO 3320
3318 HPLOT H,V
3320 NEXT C
3322 RETURN :<CTRL-J>
4000 REM ---CLEAR SCREEN---
4002 GOSUB 200: GOSUB 300: GOSUB 400: RETURN :<CTRL-J>
5000 REM ---END PROGRAM---
5002 TEXT : PRINT CHR$(4);"RUN MENU"